using System;

namespace Phoenix.Framework
{
    public class ControllerContext
    {
        public ControllerContext(IControllerDescriptor controllerDescriptor, IController controller, ControllerActionContext actionContext, ControllerAction target)
        {
            Controller = controller;
            ActionContext = actionContext;
            Target = target;
            ControllerDescriptor = controllerDescriptor;
        }

        public ControllerContext(ControllerContext controllerContext)
        {
            Controller = controllerContext.Controller;
            ControllerDescriptor = controllerContext.ControllerDescriptor;
            Target = controllerContext.Target;
            ActionContext = controllerContext.ActionContext;
        }

        public IControllerDescriptor ControllerDescriptor { get; private set; }
        public IController Controller { get; private set; }
        public ControllerActionContext ActionContext { get; private set; }
        public ControllerAction Target { get; private set; }
    }
}